



update ASM_VEN_TUT_RIEP A
set (a.tipo_cont,a.consumo) = 
(select d.tipo_con,d.consumi

from(

select case when c.consumi <= 1000 or c.consumi is null then '<= 1.000' else
           case when c.consumi >= 1001 and c.consumi <= 1800 then '<= 1.800' else
                case when c.consumi >= 1801 and c.consumi <= 2500 then '<= 2.500' else
                     case when c.consumi >= 2501 and c.consumi <= 3500 then '<= 3.500' else
                          case when c.consumi >= 3501 and c.consumi <= 5000 then '<= 5.000' else
                               case when c.consumi >= 5001 and c.consumi <= 15000 then '<=15.000' else
                                     '>15.000' 
                                     end end end end end end  tipo_con,
         c.codice_contratto,c.mese,c.consumi
 from 
  

(
select contratto_estratto  codice_contratto,to_char(data_emissione_fattura,'mm')  mese,min(data_inizio_periodo),max(data_fine_periodo),round(sum(quantita_scaglione)/
case when (max(data_fine_periodo)-min(data_inizio_periodo)) = 0 then 1 
     else  to_number(max(data_fine_periodo)-min(data_inizio_periodo)) end  *365) consumi 
from asm_vend_tutela
where progressivo_voce in ( '010','010TRAS','010VEND','888')
group by contratto_estratto,to_char(data_emissione_fattura,'mm')
)c
)d
where a.contratto_estratto = d.codice_contratto
and   a.mese = d.mese
)
where dom = 'DOM'